#ifndef MENSAJEMIDI_H
#define MENSAJEMIDI_H

#include <vector>
#include <QObject>
#include <QString>
#include <QMetaType>
#include "formato.h"

#define NOTE_OFF                0
#define NOTE_ON                 1
#define POLYPHONIC_KEY_PRESURE  2
#define CONTROL_CHANGE          3
#define PROGRAM_CHANGE          4
#define CHANNEL_PRESURE         5
#define PITCH_WEEL_CHANGE       6
#define SYSTEM_MESSAGE          7

class MensajeMidi //: public QObject
{
    //Q_OBJECT
public:

    MensajeMidi();

    void asignarDatos(std::vector<unsigned char> *datos, double deltatime);

    QString toString();
    QString getNombreComando();
	//QString getNombreNota() const { return Formato::formatearNombreNota(nota); }

	int getComando() { return comando; }
	int getNotaMidi() { return nota; }
    int getCanal() { return canal; }
    int getVelocidad() { return velocidad; }

signals:

public slots:

private:
    int canal;
    int comando;
    int nota;
    int velocidad;
};
Q_DECLARE_METATYPE(MensajeMidi)

#endif // MENSAJEMIDI_H
